package com.bwie.auth.mq;

import cn.hutool.core.util.RandomUtil;
import com.bwie.common.utils.AliYunSmsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * 发送手机验证码mq
 *
 * @author <a href="mailto:2943147140@qq.com">刘洋朔</a>
 * @version 1.0
 * @description: 发送手机验证码mq
 * @date 2025/9/9 11:26
 */
@Component
public class SendPhoneCode {
    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 点击发送验证码，使用MQ异步发送验证码（2分）
     * 验证码保存到Redis缓存当中，有效时间为1分钟（2分）
     * @param phone
     */
    @KafkaListener(topics = "sendCode")
    public void sendPhoneCode(String phone){
        //生成验证码
        String code = RandomUtil.randomString(4);
        //存入redis 验证码保存到Redis缓存当中，有效时间为1分钟（2分）
        redisTemplate.opsForValue().set("code:"+phone,code,1, TimeUnit.MINUTES);
        //发送短信给用户
        AliYunSmsUtil.sendSms(code,phone);
    }
}
